{
  /*
    学习目标：数字枚举和字符串枚举
    特点：
      1.数字枚举 ：可以省略值，默认从第一个初始值开始递增
      2. 字符串枚举 -没有递增
      3. 值只能是字符串和数字
    枚举和字面量：
      1. 字面量只能写在注解里
      2. 枚举既可以写在注解里当做类型，又可以写在值的位置
    
  */

  // 数字枚举
  // 1. 值可以省略，默认从0开始递增
  // 2. 一旦指定了值，就从初始值开始递增
  enum Status {
    Pass,
    UnPass,
    Draft,
  }

  console.log('Status.UnPass  ----->  ', Status.Pass);
  console.log('Status.UnPass  ----->  ', Status.UnPass);

  // 字符串枚举，不会递增
  enum ActionType {
    Add = 'todo/add',
    Des = 'todo/dec',
    Update = 'todo/update',
  }

  // type ActionType = { type: 'todo/add' | 'todo/del' | 'todo/update' };
  function dispatch(action: { type: ActionType }) {}

  dispatch({ type: ActionType.Add });
  dispatch({ type: ActionType.Des });
  dispatch({ type: ActionType.Update });
}
